The present invention relates in general to the field of automated performance analysis and in particular to automated performance analysis of data processors or data processor networks using expert systems.
Conventional data processors of more than moderate complexity contain fairly sophisticated operating systems, especially if those processors are to have general application. One major purpose of an operating system is to maintain control of both a data processor itself and of an entire system containing that data processor. For example, an operating system can control the number of processes (i.e., users) that can be resident in the system and control the size of memory allocated to each process. The operating system may also control the input and output to external devices and to secondary memory, such as disks.
An operating system often exercises its control by adjusting certain parameters, such as maximum working storage size allotted to each process, priority of a process, size of cache memory or size of common area of memory. The term "parameters" is used herein to denote system values which can be set either by the operating system itself or by a user. That term is used differently from the term "metrics," which refers to system values which can be measured, such as number of page faults or queue lengths.
The adjustment of parameters affects the operation of the system. For example, the maximum working set size parameter for a process may determine how often that process will have a page fault, or the maximum length of time one process can run continuously may affect the amount of swapping by the system.
In addition, judicious setting of parameters allows an operating system to adapt to different work loads. For example, if a work load consists primarily of large batch images (the term "images" refers to programs run by a "process" or user), the operating system should ideally be configured differently from how it would be if the work load consists primarily of several small interactive images.
Another reason for "tuning" an operating system by setting parameters is to adapt to the configuration of a data processor system or to the configuration of a network containing the data processor system. An operating system should operate differently depending, for example, upon the amount of memory in a processor system and the number and type of I/O devices in that system.
To determine whether a particular operating system is performing efficiently, it is necessary to analyze certain work load characteristics such as the amount of paging, swapping or free memory, the number of computable processes, or the degree of disk utilization. Such analysis is often made according to the individual subjective standards of particular engineers performing the analysis. It would be preferable to make measurements (i.e., determine the values of metrics) which could objectively indicate an operating system's performance. This has proven difficult, however, because operating system efficiency is not an easy value to measure. Often the data available for evaluation is not a precise measurement of efficiency, but rather only a secondary or tertiary indication.
Many operating systems have built-in programs for making operational measurements of a processor and its operating system. For example, in the VMS family of operating systems for the VAX computer systems manufactured by Digital Equipment Corporation, a Monitor program is available to measure pre-ordained operating system data. Such data includes working storage sizes, certain queue lengths, number of disk I/O's, etc. Even with the information provided by the Monitor program, however, it is still difficult to assess operating system efficiency accurately and to make the proper recommendations. For example, even after determining from the measured data that there is excessive paging in a data processing system, the cause of the excessive paging must be isolated before helpful suggestions can be offered.
This lack of definitive measurement has been a problem for conventional operating systems even where manuals are provided suggesting ways to improve the operating system performance. For example, associated with the VMS operating systems are manuals suggesting different methods of analysis of that operating system. One such manual is the Guide to VAX/VMS Performance Management, Version 4.4 (April 1986), especially chapter 4. That chapter contains several diagrams which generally explain what conditions to check for, such as excessive swapping or paging.
One limitation of that manual, however, is that the analysis called for in the diagrams often depends upon the individual judgments of the engineers performing the analysis. Thus, different engineers presented with the same set of facts may have different opinions of, for example, whether there is too much swapping.
Variation in the results of operating system analyses by different engineers may occur for several reasons. First, it is not always clear what the different measurements represent. In addition, different engineers may interpret the measurements differently. There is also disagreement regarding the weight to be given to the different measurements, thereby resulting in a "seat-of-the-pants" operation by each engineer. Furthermore, since each engineer operates differently, results of their analyses are nonuniform.
Another significant disadvantage of conventional systems which call for a system engineer's assessment of data is that such systems are generally unhelpful to nonexperts. In addition, even persons with some knowledge of the operating system may find the manuals of limited help since the manuals often do not generally explain the reasons for taking the suggested actions.
There has been at least one attempt to adapt the technology of artificial intelligence or expert systems to the problems of performance analysis, but that attempt does not address all the problems of using the manuals. The TIMM/TUNER, which is described on pages 109-114 of Digital Review, May 1986, uses certain measurements from a VAX computer system with a VMS operating system, and presents those measurements to an operator for evaluation. As compared to the VAX/VMS Performance Management Guide, however, the TIMM/TUNER system offers little additional capabilities other than automated queries. Furthermore, the TIMM/TUNER is limited to a single node (i.e., VAX machine).
It is therefore an objective of the present invention to provide a method of performance tuning and evaluation which measures the data needed to analyze the performance of a data processing system or network of data processing systems.
It is another objective of the present invention to provide a method of performance tuning and evaluation which analyzes the measured data according to predetermined rules and thresholds and to recommend actions to be taken according to those rules.
It is yet another objective of the present invention to provide a method of performance tuning and evaluation which explains the actions which have been recommended and which supplies the evidence forming the basis of the recommendations.
Additional objectives and advantages of the present invention will be set forth in part in the description which follows and in part will be obvious from that description or may be learned by practice of the invention. The objectives and advantages of the invention may be realized and obtained by the methods particularly pointed out in the appended claims.